\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename TM_English.info
@settitle ToolManager 2.0 Documentation
@setchapternewpage on
@c %**end of header


@comment
@comment  TM_English.tex V2.0
@comment
@comment  English documentation for ToolManager (Texinfo format)
@comment
@comment  (c) 1990-1992 Stefan Becker
@comment


@comment ----------------------------------------------------------------
@comment --- Title & Copyright Page (for printed manual)              ---
@comment ----------------------------------------------------------------
@titlepage

@title{ToolManager}
@subtitle{An extension for the Amiga Workbench}
@subtitle{}
@subtitle{Version 2.0}
@subtitle{26 September 1992}

@page
@vskip 0pt plus 1filll

@comment ----------------------------------------------------------------
@comment Note to translators:
@comment Translate this page and then copy it to the node "Copyright"
@comment Both pages must be identical!
@comment ----------------------------------------------------------------

Copyright @copyright{} 1990-92 Stefan Becker

Permission is granted to make and distribute verbatim copies of this manual
provided the copyright notice and this permission notice are preserved on
all copies.

@ignore
Permission is granted to process this file by TeX and print the results,
provided the printed document carries a copying permission notice identical to
this one except for the removal of this paragraph (this paragraph not being
relevant to the printed manual).
@end ignore

No guarantee of any kind is given that the programs described in this document
are 100% reliable. You are using this material at your own risk. The author
@strong{can not} be made responsible for any damage which is caused by using
these programs.

This package is freely distributable, but still copyright by Stefan Becker.
This means that you can copy it freely as long as you don't ask for a more
than nominal copying fee. This fee @strong{must not} be more than US $5 or 5
DM.

@strong{This limit applies to German Public-Domain dealers too!!}

Permission is granted to include this package in Public-Domain collections,
especially in Fred Fishs Amiga Disk Library (including CD ROM versions of it).
The distribution file may be uploaded to Bulletin Board Systems or FTP
servers. If you want to distribute this program you @strong{must} use the
original distribution archive @file{ToolManager2_0.lha}.

None of the programs nor the source code (nor parts of it) may be included or
used in commercial programs unless by written permission from the author.

@strong{None} of the programs @strong{nor} the source code (nor parts of it)
may be used on any machine which is used for the research, development,
construction, testing or production of weapons or other military applications.
This also includes any machine which is used for training persons for
@strong{any} of the above mentioned purposes.

@end titlepage
@headings double
@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Top Node (not printed)                                   ---
@comment ----------------------------------------------------------------
@ifinfo
@node Top, Copyright, (dir), (dir)
@top ToolManager 2.0 Documentation

@menu
Chapters for @emph{all} users:

* Copyright::                 Copyright and other legal stuff
* Important::                 Important notes
* Authors address::           Where to send bug reports, comments & donations

Chapters for impatient users:

* Quick installation::        How to install ToolManager 2.0 the fast way

Chapters for first-time users:

* Introduction::              What is ToolManager?
* Concepts::                  The concepts behind ToolManager
* Distribution files::        Description of all files in the distribution

Reference chapters:

* Objects::                   ToolManager objects reference
* Preferences::               The ToolManager preferences editor
* Library::                   The ToolManager shared library interface
* Hot Keys::                  How to define a Hot Key

Appendices:

* History::                   The history of ToolManager
* Credits::                   The author would like to thank@dots{}
* Index::                     The Index for this document
@end menu

@end ifinfo
@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Copyright (for Info/AmigaGuide document)        ---
@comment ----------------------------------------------------------------
@ifinfo
@node Copyright, Important, Top, Top
@chapter Copyright and other legal stuff
@cindex Copyright
@cindex Distribution
@cindex Legal stuff
@cindex Permissions
@cindex Probibitions

Copyright @copyright{} 1990-92 Stefan Becker

Permission is granted to make and distribute verbatim copies of this manual
provided the copyright notice and this permission notice are preserved on
all copies.

@ignore
Permission is granted to process this file by TeX and print the results,
provided the printed document carries a copying permission notice identical to
this one except for the removal of this paragraph (this paragraph not being
relevant to the printed manual).
@end ignore

No guarantee of any kind is given that the programs described in this document
are 100% reliable. You are using this material at your own risk. The author
@strong{can not} be made responsible for any damage which is caused by using
these programs.

This package is freely distributable, but still copyright by Stefan Becker.
This means that you can copy it freely as long as you don't ask for a more
than nominal copying fee. This fee @strong{must not} be more than US $5 or 5
DM.

@strong{This limit applies to German Public-Domain dealers too!!}

Permission is granted to include this package in Public-Domain collections,
especially in Fred Fishs Amiga Disk Library (including CD ROM versions of it).
The distribution file may be uploaded to Bulletin Board Systems or FTP
servers. If you want to distribute this program you @strong{must} use the
original distribution archive @file{ToolManager2_0.lha}.

None of the programs nor the source code (nor parts of it) may be included or
used in commercial programs unless by written permission from the author.

@strong{None} of the programs @strong{nor} the source code (nor parts of it)
may be used on any machine which is used for the research, development,
construction, testing or production of weapons or other military applications.
This also includes any machine which is used for training persons for
@strong{any} of the above mentioned purposes.

@end ifinfo
@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Important                                       ---
@comment ----------------------------------------------------------------
@node Important, Authors address, Copyright, Top
@chapter Important notes
@cindex GiftWare
@cindex Important notes
@cindex V38 features

Welcome to the wonderful world of ToolManager 2.0 :-)

@itemize @minus

@item
ToolManager and its concepts have drastically changed (@pxref{History})
since the last release (1.5).

@item
Starting with the ToolManager 2.0 release, this program has a @emph{GiftWare}
option. If you like the program and use it very often, you should consider to
send a little donation to honor the work that the author has put into this
program. I suggest a donation of US $10-$20 or 10-20 DM. Please don't send
cheques or money orders from outside Europe, because most often cashing those
items costs more than what they amount to.

If you don't send the donation or can't afford it, you needn't feel bad
about it. Please send me a note saying that you are using ToolManager anyway
(I like to get fan mail :-). @xref{Authors address}.

@item
Users of ToolManager 1.X can start with the quick installation chapter
(@pxref{Quick installation}). Some features haven't changed and the rest is
fairly easy to find out by trial & error. For a detailed description of the
new concept & features browse the reference part of this document
(@pxref{Objects}).

You @strong{must} remove any running ToolManager 1.X or the new version won't
work. The new version cannot read the old configuration file format
(Sorry).

@item
First-time users should read the entire document to understand the concept and
purpose of the program. Start with @ref{Introduction}.

@item
ToolManager 2.0 uses some features of AmigaOS Release V38,
which should (hopefully) be available to all Amiga users by the time
you read this. But if you are still using Release 2.0 (referred to
as V37 in this document), you need not worry since ToolManager doesn't
rely on these features. All extended V38 features are marked in this
documentation.
@end itemize

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Authors address                                 ---
@comment ----------------------------------------------------------------
@node Authors address, Quick installation, Important, Top
@chapter Where to send bug reports, comments & donations
@cindex Address
@cindex Bug reports
@cindex Comments
@cindex Donations
@cindex E-Mail
@cindex InterNet address
@cindex Postal address

The author can be reached at the following addresses:

@table @asis
@item Postal address:

@example

     Stefan Becker
     Holsteinstrasse 9
5100 Aachen
     GERMANY
@end example

@item InterNet Electronic Mail:

@example

stefanb@@pool.informatik.rwth-aachen.de
@end example
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Quick installation                              ---
@comment ----------------------------------------------------------------
@node Quick installation, Introduction, Authors address, Top
@chapter How to install ToolManager 2.0 the fast way
@cindex Fast installation
@cindex Installation (quick)
@cindex Quick installation

The basic ToolManager 2.0 installation consists of the following four parts:

@table @asis
@item @file{Libs/toolmanager.library} @result{} @file{LIBS:}
This is the main program of ToolManager. It handles all programs, menus, icons
and docks (@pxref{Library}).

@item @file{Prefs/ToolManager*} @result{} @file{SYS:Prefs}
This is the editor for the configuration (@pxref{Preferences}).

@item @file{WBStartup/ToolManager*} @result{} @file{SYS:WBStartup}
With this utility you can start and stop ToolManager. If it resides in the
WBStartup drawer, ToolManager gets always loaded when your machine boots
up.

@item @file{L/WBStart-Handler} @result{} @file{L:}
This program starts programs by the Workbench startup method. It is a
seperate process, so that you can quit ToolManager even if you have still
programs running that were started by it with the WB method.
@end table

After copying these files, you should quit any older version of ToolManager
running on your machine and double-click the ToolManager icon in the WBStartup
drawer. Now you can start the preferences editor and play around (Use the
``Test'' button instead of the ``Use'' button while testing). You should be
able to figure out most features with trial & error, for further information
look into the ToolManager object descriptions (@pxref{Objects}).

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Introduction                                    ---
@comment ----------------------------------------------------------------
@node Introduction, Concepts, Quick installation, Top
@chapter What is ToolManager?
@cindex Introduction to ToolManager

ToolManager is a flexible program to manage the tools in your working
environment. It can start Workbench and CLI programs as well as ARexx scripts.
The user interface consists of menus, icons or dock windows. If you like a
noisy computer, you can associate a sound to each of these items. @xref{Sound,
Sound objects}.

ToolManager can add items to the Workbench @code{Tools} menu. If you select
such a menu item, the program associated with it will be started. Every
selected icon on the Workbench will be used as an argument for the program.
This feature is only available when the Workbench is running. @xref{Menu,Menu
objects}.

ToolManager can add icons to the Workbench window. When you double-click such
an icon, the program associated with it will be started. If you drop some
icons on this icon, the program will be started with these icons as arguments.
This feature is only available when the Workbench is running. @xref{Icon,Icon
objects}.

ToolManager can create a dock window from a collection of programs. This
window can be opened on every public screen. Each program is represented by an
image or a button gadget. To start a program you simply click on the image or
the button gadget. If the dock window has been opened on the Workbench screen
and the Workbench is running, you can also drop some icons on the image or the
button gadget to start the program with arguments. @xref{Dock,Dock objects}.

Additionally you can assign a Hot Key to each program. If you press this Hot
Key, the program will be started. Note that @emph{no} arguments can be
passed to the program if you use this startup method. @xref{Exec,Exec
objects}.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Concepts                                        ---
@comment ----------------------------------------------------------------
@node Concepts, Distribution files, Introduction, Top
@chapter The concepts behind ToolManager
@cindex Concepts
@cindex Introduction to ToolManager objects
@cindex Program concepts

ToolManager 2.0 uses a new object-oriented approach to provide a flexible and
extendable system. This approach made it possible to enhance several
ToolManager features of the 1.X versions, e.g.@: you can now have multiple
docks.

An object is a collection of data which describes its features. Each object
has a name and a type. You can create as many objects of each type as you
want, but the name of each object has to be unique, because it is used as a
reference to this object.

Currently there are six different types of objects: Exec, Image, Sound, Menu,
Icon and Dock. The first three of them are basic objects; that means they
don't reference other objects. They provide data or services for the complex
objects.

The last three object types are complex objects; that means they reference
simple objects and rely on them to get access to data or services. The
reference is done by name, and if no simple object with this name exists,
the complex object will ignore it. Note that this may reduce the functionality
of the complex object, e.g. an Icon object @emph{needs} the data from an Image
object, so if this object doesn't exist it won't create an icon.

For a detailed description of all object parameters see @ref{Objects}.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Distribution files                              ---
@comment ----------------------------------------------------------------
@node Distribution files, Objects, Concepts, Top
@chapter Description of all files in the distribution
@cindex Distribution files
@cindex Reference: Distribution files

The ToolManager 2.0 distribution consists of several directories which are
explained below.

@menu
* Docs::             Documentation
* Goodies::          Additional program packages
* Graphics::         Anims, Brushes & Icons
* L::                Support programs
* Libs::             ToolManager library
* Locale::           Localization support files
* Prefs::            ToolManager preferences editor
* Programmers::      Programmer support files
* Scripts::          ARexx & Shell scripts
* Source::           Complete source code for ToolManager 2.0
* WBStartup::        Utility programs
@end menu

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/Docs                         ---
@comment ----------------------------------------------------------------
@node Docs, Goodies, , Distribution files
@section The Docs directory
@cindex AmigaGuide
@cindex ASCII documentation
@cindex Documentation
@cindex Docs directory
@cindex Library documentation
@cindex Printed documentation
@cindex @TeX{}
@cindex Texinfo

This directory contains the documentation for ToolManager. The documentation
is available in four different formats and several languages. Additionally
there is a file in AutoDoc format describing the ToolManager shared library
interface.

@table @asis
@item Prefix @file{TM_<language>}
This file contains the documentation for the specified language. Currently
available languages are: Deutsch, English, Svenska.

@item Postfix @file{.doc}
This file contains the documentation as plain ASCII text.

@item Postfix @file{.dvi}
This file contains the documentation in @TeX{}s DVI format. To get a printed
manual, run this file through a @TeX{} printer driver.

@item Postfix @file{.guide}
This file contains the documentation in AmigaGuide format. Although it is only
plain ASCII with some commands, you need AmigaGuide to exploit the hypertext
links in it. The author hopes that AmigaGuide will be available soon to all
Amiga users.

@item Postfix @file{.tex}
This file contains the documentation in Texinfo format, as specified by the
Free Software Foundation (FSF). Together with the @file{texinfo.tex} macro
package, you can use @TeX{} and @file{texindex} to create a file in DVI
format (see above).

@item @file{toolmanager.doc}
This file contains the ToolManager shared library interface description in
AutoDoc format.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/Goodies                      ---
@comment ----------------------------------------------------------------
@node Goodies, Graphics, Docs, Distribution files
@section The Goodies directory
@cindex DeleteTool
@cindex GetPubName
@cindex Goodies directory
@cindex UPD
@cindex Sound player

This directory contains additional program packages which are useful for
ToolManagers operation.

@table @file
@item GetPubName.lha
This little program prints the name of the frontmost public screen either to
stdout or into an environment variable. It was written by Michael ``Mick''
Hohmann.

@item upd1_20.lha
The program @code{upd} was written by Jonas Petersson. It is a small program
which opens an ARexx port and waits for commands. Via ARexx you can order
@code{upd} to play sampled files. ToolManager uses this feature to implement
its Sound objects. @xref{Sound,Sound objects}.
@end table

Users of ToolManager 1.5 may wonder why the utility @code{DeleteTool} is
missing in this release. This utility may be replaced by the program
@code{BlackHole} on Fish Disk #662.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution File/Graphics                      ---
@comment ----------------------------------------------------------------
@node Graphics, L, Goodies, Distribution files
@section The Graphics directory
@cindex Graphics directory
@cindex Example images
@cindex Contributed images

This directory contains a rich collection of images from which you can choose
your favourite ones. Just load them as Image objects into ToolManager
(@pxref{Image,Image objects}).

The files were contributed by various people (@pxref{Credits}). Each of them
got a seperate sub-directory in the distribution. As the files were
created by different authors, they come from different environments (palette,
depth, resolution, size) and have different design styles. So not all images
may look good on your machine.

To differentiate the image formats that are supported by ToolManager, each
file has a postfix which describes the file format:

@table @file
@item .anmb
This is an IFF ANIM file created by a paint/animation program. It can contain
several pictures. Although ToolManager can load complete ANIM files, you
must use something like DPaints ``AnimBrush'' feature to cut out the
interesting part of the animation.

@item .brush
This is an IFF ILBM file created by a paint program. It contains only one
image.

@item .info
This is a normal Amiga Icon created with IconEdit (or something similiar). It
can contain two images.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/L                            ---
@comment ----------------------------------------------------------------
@node L, Libs, Graphics, Distribution files
@section The L directory
@cindex L directory
@cindex WBStart-Handler
@cindex WBStart 1.2

This directory contains only one file, namely @file{WBStart-Handler}. You
@emph{must} copy this file to the @file{L:} directory, or otherwise
ToolManager won't be able to start any Exec objects by the WB startup method
(@pxref{Exec,Exec objects}).

The complete package WBStart 1.2 may be found on a Fish Disk.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/Libs                        ---
@comment ----------------------------------------------------------------
@node Libs, Locale, L, Distribution files
@section The Libs directory
@cindex Libs directory

This directory contains only one file, @file{toolmanager.library}. This is the
main program for ToolManager and must be copied to the @file{LIBS:} directory.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/Locale                       ---
@comment ----------------------------------------------------------------
@node Locale, Prefs, Libs, Distribution files
@section The Locale directory
@cindex Catalog files
@cindex Language files
@cindex Languages
@cindex Locale directory
@cindex Localization
@cindex Translations

This directory contains all files for ToolManagers Locale support. As
locale.library is new with V38, you need not copy these files if you are
using V37. If you are using V38, choose the files for your language and copy
them to the appropriate places.

@table @file
@item Catalogs/<language>/toolmanager.catalog
This is a translation file for the specified language. Copy the file for your
language to the directory @file{LOCALE:Catalogs/<language>}.

@item Languages/<language>.language
Some languages are not supported by the standard V38 Locale distribution. So
some of the translators have supplied a @file{.language} file, so that
ToolManager can use their translation files. Copy the file for your language
to the directory @file{LOCALE:Languages}. Additional available languages are:
Finnish (suomi), Eefeler Platt (eifel).
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/Prefs                        ---
@comment ----------------------------------------------------------------
@node Prefs, Programmers, Locale, Distribution files
@section The Prefs directory
@cindex Prefs directory

The ToolManager preferences editor and its icon reside in this directory. Copy
both files to the directory @file{SYS:Prefs}. For further information on the
editor see @ref{Preferences}.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/Programmers                  ---
@comment ----------------------------------------------------------------
@node Programmers, Scripts, Prefs, Distribution files
@section The Programmers directory
@cindex Compiler support
@cindex Programmers directory

This directory contains all files which are needed by the various computer
languages and their compilers to use the ToolManager shared library interface.
Look into the sub-directory @file{examples} for some examples on how to use
this interface. For a complete interface description read the file
@file{Docs/toolmanager.doc}.

Currently supported languages/compilers are: AmigaOberon, DICE C, M2Amiga
Modula, MANX Aztec C and SAS C.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/Scripts                      ---
@comment ----------------------------------------------------------------
@node Scripts, Source, Programmers, Distribution files
@section The Scripts directory
@cindex ARexx scripts
@cindex Scripts directory
@cindex Shell scripts

This directory contains a collection of ARexx or Shell scripts which can be
used in ToolManagers Exec objects. Note that they may be specific to the
authors environment or shell, so you may have to modify them.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution Files/Source                       ---
@comment ----------------------------------------------------------------
@node Source, WBStartup, Scripts, Distribution files
@section The Source directory
@cindex Source code
@cindex Source directory
@cindex Translators

This directory contains the complete source code to ToolManager 2.0 and its
utilities. Each program has its own sub-directory. The author provides the
source code as an example for OS 2.0 programming.

The @file{locale} sub-directory is of interest for translators. If your
language is not supported in this release and you want to do the translation,
look at the file @file{empty.ct}. Just fill in the empty lines and send the
file to me. Maybe it will be included in the next release.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Distribution files/WBStartup                    ---
@comment ----------------------------------------------------------------
@node WBStartup, , Source, Distribution files
@section The WBStartup directory
@cindex WBStartup directory

Only one program resides in this directory: @code{ToolManager}. This utility
starts and stops ToolManager 2.0. Most of the time this utility will reside in
the @file{SYS:WBStartup} directory, but it can be used from the Shell too.

@comment ----------------------------------------------------------------
@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Objects                                         ---
@comment ----------------------------------------------------------------
@node Objects, Preferences, Distribution files, Top
@chapter ToolManager objects reference
@cindex Objects
@cindex Reference: ToolManager objects
@cindex ToolManager objects

This chapter describes the ToolManager objects in detail. Each object has a
type and a name. The name is used to reference the object. There are six
different types of objects:

@menu
* Exec::       Exec objects
* Image::      Image objects
* Sound::      Sound objects
* Menu::       Menu objects
* Icon::       Icon objects
* Dock::       Dock objects
@end menu

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Objects/Exec                                    ---
@comment ----------------------------------------------------------------
@node Exec, Image, , Objects
@section Exec objects
@cindex Exec objects

Exec objects describe programs which are started by ToolManager. Three
different types of programs are supported: CLI, Workbench and ARexx.
Each Exec object has the following parameters. The defaults are set in
parantheses:

@table @asis
@item @code{Arguments} (Yes)
This switch controls the handing over of arguments to the program. If a
program doesn't support arguments or doesn't need them, you can switch off the
argument passing.

@item @code{Command}
The file name of the program to start. This name may be relative to the
current directory.

@item @code{Current Directory} (@file{SYS:})
The name of the current directory for the program. Note: ARexx programs ignore
this parameter.

@item @code{Delay} (0)
After activation of an Exec object, ToolManager waits @code{Delay} seconds
before it starts the program. If this value is negative, the program will be
started every @code{Delay} seconds. To stop an Exec object which is waiting
for execution, just activate it again. Note: If @code{Delay} is set, the
program will be started without arguments.

@item @code{Exec Type} (CLI)
This specifies the type of the program. It can be one of: CLI, WB or ARexx.

@item @code{Hot Key}
You can set a Hot Key for each Exec object. If this Hot Key event is
generated, the program will be started. Note: The program will be started
with no arguments.

@item @code{Output File} (@file{NIL:})
This is the file name of the output file. This is only useful for CLI
programs.

@item @code{Path} (path from ToolManager process)
This string sets the command search path for the program. You can specify
several directories by seperating the names with a ``;''. This is only useful
for CLI programs.

@item @code{Priority} (0)
This sets the priority of the new process which runs the program.

@item @code{Public Screen} (default public screen)
You can set the name of the public screen which should be moved to front
before the program is started. This only works in conjunction with the
@code{To Front} parameter.

@item @code{Stack} (4096)
This sets the stack size of the new process which runs the program.

@item @code{To Front} (No)
If you set this parameter the public screen specified by @code{Public
Screen} is moved to front before the program is started.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Objects/Image                                   ---
@comment ----------------------------------------------------------------
@node Image, Sound, Exec, Objects
@section Image objects
@cindex Image objects

Image objects specify the image data which is used by ToolManager for icons
or docks. This object type has only one parameter:

@table @code
@item File Name
This specifies the name of the file from which ToolManager should read the
image data. ToolManager tries to detect the type of image data automatically:

@enumerate
@item
It tries to load it as IFF data. Currently ToolManager can read ILBM (one
image) or ANIM (two or more images) files.

@item
It tries to read in an icon file. An icon can have one or two images.
@end enumerate
@end table

Animations are currently only supported by Dock objects. Icon objects only
retrieve the first and the second image from the animation to build a two
image icon. If you want to make an animation for ToolManager, you should
follow these design rules:

@table @asis
@item Image 1
This should be an image which represents the inactive state.

@item Image 2
This should be an image which represents the selected state. Normally this is
an inverted copy of the first image.

@item Image 3 to N-1
These are the images for the animation. Each image will be shown for 1/3 of a
second.

@item Image N
The last picture of the animation will be shown one second. After this the
first picture will be shown again.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Objects/Sound                                   ---
@comment ----------------------------------------------------------------
@node Sound, Menu, Image, Objects
@section Sound objects
@cindex Sound objects

A Sound object can be used to make ToolManager noisy. ToolManager itself has
no ability builtin to play sound data, it uses ARexx to activate an external
sound player daemon. This object type has two parameters:

@table @code
@item Command
This sets the ARexx command which ToolManager sends to activate the external
sound player. For @code{upd} this could be something like @code{file
samples:boing} which instructs @code{upd} to play the IFF sample
@file{samples:boing}. @xref{Goodies}.

@item ARexx Port
This specifies the ARexx port where ToolManager should send @code{command} to.
The default is @code{PLAY} which is the port for the program @code{upd}.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Objects/Menu                                    ---
@comment ----------------------------------------------------------------
@node Menu, Icon, Sound, Objects
@section Menu objects
@cindex Menu objects

Menu objects control the entries in the Workbench Tools menu. The object name
is used as the menu text. To activate such an object, just select the menu
entry. Menu objects only work when the Workbench is running.

This object type has two parameters:

@table @code
@item Exec Object
This is the name of an Exec object which should be activated when the menu
entry is selected. Every icon which is selected at this time will be used as
an argument for the program.

@item Sound Object
This is the name of a Sound object which should be activated when the menu
entry is selected.
@end table

Note to ToolManager 1.X users: To simulate the old tool type ``Dummy'' just
create a Menu object and specify @emph{no} Exec and Sound object.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Objects/Icon                                    ---
@comment ----------------------------------------------------------------
@node Icon, Dock, Menu, Objects
@section Icon objects
@cindex Icon objects

Icon objects describe application icons in the Workbench window. Such an
object can be activated by double-clicking the icon or by dropping some icons
on the application icon. Icon objects only work when the Workbench is running.

The parameters for this object type are as follows:

@table @asis
@item @code{Exec Object}
This is the name of an Exec object which should be activated when the icon is
selected. Every icon which is dropped on the application icon will be used as
an argument for the program.

@item @code{Image Object}
This is the name of an Image object. The image data of this object is used to
build the application icon.

@item @code{Left Edge} (default: 0)
This sets the left edge for the application icon.

@item @code{Show Name} (default: Yes)
If this parameter is set, the object name will be used as the name for the
application icon.

@item @code{Sound Object}
This is the name of a Sound object which should be activated when the icon is
selected.

@item @code{Top Edge} (default: 0)
This sets the top edge for the application icon.
@end table

Note: The Workbench is @emph{very} picky about the position of icons. If you
specify coordinates which the Workbench doesn't like, it will ignore them and
place the icon somewhere else.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Objects/Dock                                    ---
@comment ----------------------------------------------------------------
@node Dock, , Icon, Objects
@section Dock objects
@cindex Dock objects

Dock objects describe windows. These windows combine several tools which are
represented by images or gadgets. To start such a tool just click on its image
or gadget. Of course you can drop some icons on the image or gadget to supply
arguments for the tool.

Each dock object has several parameters. The defaults are set in parentheses:

@table @asis
@item @code{Activated} (Yes)
A dock window can be active (open) or unactive (closed).

@item @code{Centered} (No)
If this parameter is set, the window will always be centered to the current
mouse position when it opens.

@item @code{Columns} (1)
This parameter sets the the number of tool columns. Tools are always sorted
row-wise, starting at the leftmost column and filling up to the rightmost
column.

@item @code{Font} (Screen font)
If you have a dock window with the parameter @code{Text} set, you can choose
the font for the button gadgets with this parameter.

@item @code{Frontmost} (No)
If you set this parameter, the dock window will always open on the frontmost
public screen.

@item @code{Hot Key}
You can set a Hot Key for each Dock object. If this Hot Key event is
generated, the activation status of the dock window will be toggled; that is
it will be closed or opened.

@item @code{Left Edge} (0)
This parameter sets the left edge of the dock window. If the parameter
@code{Centered} is set, this parameter will be ignored.

@item @code{Menu} (No)
You can add a small menu to each dock window. This menu has two items:

@itemize
@item @code{Close Dock}
Close dock window.

@item @code{Quit TM}
Quit ToolManager
@end itemize

@item @code{Pattern} (No)
The dock window automatically adjusts its size to the largest image. Each dock
entry has the same size, and smaller images are centered, so they have a blank
border around them. If you don't like this blank border, set this parameter
and the border will be filled with a pattern.

@item @code{PopUp} (No)
When this parameter is set the dock window will be closed automatically after
selecting one dock entry. This is especially useful in conjunction with the
parameters @code{Centered}, @code{Frontmost} and a Hot Key of the class
@code{rawmouse} (@pxref{Hot Keys}).

@item @code{Public Screen} (Default public screen)
Specifies the public screen on which the dock window should open. If the dock
window was opened via Hot Key, the public screen will be moved to front
after the window has been opened. This parameter will be ignored if the
parameter @code{Frontmost} is set.

@item @code{Text} (No)
You can choose between images and button gadgets in dock windows with this
parameter. Button dock windows are especially useful when used in conjunction
with the parameter @code{PopUp}.

@item @code{Title}
This specifies the dock window title. If you supply a title, the dock window
will be a normal OS 2.0 window with dragbar, close gadget, depth gadget and a
border. If you @emph{don't} supply a title, you will get a dock window with
only a dragbar and @emph{no} border.

@item @code{Top Edge} (0)
This parameter sets the top edge of the dock window. If the parameter
@code{Centered} is set, this parameter will be ignored.

@item @code{Vertical} (No)
If the dock window has the new window design (that is: only a dragbar and no
border), this parameter sets the orientation of the dragbar. This parameter is
ignored if you supplied a window title with the parameter @code{Title}.
@end table

@comment ----------------------------------------------------------------
@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Preferences                                     ---
@comment ----------------------------------------------------------------
@node Preferences, Library, Objects, Top
@chapter The ToolManager preferences editor
@cindex Configuration
@cindex Preferences editor
@cindex Reference: Preferences editor

With the preferences editor you can manage the global configuration of
ToolManager. This configuration gets automatically loaded when you start
ToolManager. To start the editor just double click its icon. You will then see
the main window.

@menu
* Main Window Gadgets::
* Main Window Menus::
* Edit Windows::
* Tooltypes::
* CLI Arguments::
@end menu

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Preferences/Main Window Gadgets                 ---
@comment ----------------------------------------------------------------
@node Main Window Gadgets, Main Window Menus, , Preferences
@section Main window gadgets

The main window has several groups of gadgets:

@table @asis
@item Object type
With this cycle gadget you can choose the type of objects that you want to
create or edit.

@item Object list
This gadget shows the list of all objects of the current type. You can select
an object by clicking on its name. If you double-click one item, an edit
window will open.

@item Move object
When an object is selected, you can move it around in the list with these
gadgets. If you click on the @code{Sort} gadget, the items in the list will be
sorted alphabetically.

@item Manipulate object
These gadgets manipulate objects. The @code{New} gadget creates a new object of
the current type which is selected automatically. When you click on the
@code{Edit} gadget, an edit window for the selected object will open. With
the @code{Copy} gadget you can make a copy of the selected object. The
@code{Remove} gadget deletes the selected object.

@item Configuration
You have several choices to save the configuration. With the @code{Save}
gadget you can save the configuration permanently into the file
@file{ENVARC:ToolManager.prefs}. For a temporary change use the @code{Use}
gadget, which will save the configuration into the file
@file{ENV:ToolManager.prefs}. This file will not survive a machine reset. To
test the new configuration without leaving the editor, use the @code{Test}
gadget. The @code{Cancel} gadget will quit the editor without saving.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Preferences/Main Window Menus                   ---
@comment ----------------------------------------------------------------
@node Main Window Menus, Edit Windows, Main Window Gadgets, Preferences
@section Main window menus

The main window has several menu items:

@table @code
@item Project
With the menu items @code{Open} and @code{Save As} you can load and save the
configuration. The @code{About} item opens an information requester. Selecting
the @code{Quit} item will leave the editor without saving.

@item Edit
With these menu items you can restore older configurations. The @code{Last
Saved} item loads the last saved configuration from the file
@file{ENVARC:ToolManager.prefs}. With the item @code{Restore} you can load the
configuration that was active before you started the editor from the file
@file{ENV:ToolManager.prefs}.

@item Settings
You can choose with the @code{Create Icons} item wether the menu item
@code{Save As} should create an icon or not.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Preferences/Edit Windows                        ---
@comment ----------------------------------------------------------------
@node Edit Windows, Tooltypes, Main Window Menus, Preferences
@section Edit windows

Each object type has a different edit window to set the object parameters. For
a detailed list of all object parameters see @ref{Objects}.

Every edit window has a string gadget for the object name. This name is
important, because it is used to reference this object. Note that there is
currently no builtin cross-reference. So if you change the name of an object
which is already referenced by another object, this reference will @emph{not}
be updated. You have to update this reference by hand.

The button gadgets in the edit windows open different types of requesters. You
can choose an item by clicking on it and pressing the @code{OK} gadget, or you
simply double-click it. To leave a requester without changes, use the
@code{Cancel} gadget. If you wish to clear a field which can only be choosen
by a requester, open the requester and press the @code{OK} gadget
@emph{without} selecting an item.

The edit windows for the object types Exec and Image have an additional
feature. You can simply drop an icon on them to set the parameters from this
icon.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Preferences/Tooltypes                           ---
@comment ----------------------------------------------------------------
@node Tooltypes, CLI Arguments, Edit Windows, Preferences
@section Tooltypes
@cindex Tooltypes

When you start the preferences editor from the Workbench you can set several
tooltypes in the program icon or configuration file icons to control it.

@table @code
@item USE
If you set this tooltype in an icon for a preferences file, the editor
will install this file as current configuration file.

@item SAVE
If you set this tooltype in an icon for a preferences file, the editor
will install this file as current and as permanent configuration file.

@item PUBSCREEN
This tooltype tells the editor to open its windows on a specific public
screen. If you don't supply this tooltype, the default public screen will be
used.

@item CREATEICONS
When this tooltype is set to @code{YES}, the editor will create an icon for
every preferences file that is created with the @code{Save As} menu item.

@item DEFAULTFONT
The editor normally uses the public screen font to draw its gadgets. If you
set this tooltype to @code{YES}, the editor will use the system default font
instead.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Preferences/CLI Arguments                       ---
@comment ----------------------------------------------------------------
@node CLI Arguments, , Tooltypes, Preferences
@section CLI Arguments
@cindex CLI Arguments

When the preferences editor is started from the shell, it uses the following
command line template:

@example
FROM,EDIT/S,USE/S,SAVE/S,PUBSCREEN/K,DEFAULTFONT/S
@end example

@table @code
@item FROM
This parameter specifies the name of the preferences file which the editor
should load.

@item USE
If you use this parameter, the editor will install the file specified
as the @code{FROM} parameter as current configuration file.

@item SAVE
If you use this parameter, the editor will install the file specified as the
@code{FROM} parameter as current and as permanent configuration file.

@item PUBSCREEN
This parameter tells the editor to open its windows on a specific public
screen. If you don't supply this tooltype the default public screen will be
used.

@item DEFAULTFONT
The editor normally uses the public screen font to draw its gadgets. If you
use this parameter the editor will use the system default font instead.
@end table

@comment ----------------------------------------------------------------
@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Library                                         ---
@comment ----------------------------------------------------------------
@node Library, Hot Keys, Preferences, Top
@chapter The ToolManager shared library interface
@cindex Library interface
@cindex Reference: Library interface
@cindex Shared library interface
@cindex ToolManager shared library interface

The ToolManager handler is embedded into a Amiga shared library. This library
offers several functions to create and manipulate ToolManager objects, so that
you can use them in your programs.

There are currently six functions available:

@table @code
@item AllocTMHandle()
In order to create ToolManager objects you must first allocate a TMHandle.
This handle stores all information about your objects and is used to reference
them. Note that the information stored in this handle is @emph{only}
accessable by the program which creates it.

@item FreeTMHandle()
This function frees a TMHandle and all ToolManager objects associated with it.
Each @code{AllocTMHandle()} must be matched with a @code{FreeTMHandle()}!

@item  CreateTMObjectTags()
@itemx CreateTMObjectTagList()
This function creates a ToolManager object. You must supply a name, the object
type and various tags for the object parameters. The name of the object is
important, as it is used to reference the object.

@item  ChangeTMObjectTags()
@itemx ChangeTMObjectTagList()
You can modify the parameters of a ToolManager object with this function. The
object state will be updated to reflect the new parameters. Note: Currently
Image objects can't be modified.

@item DeleteTMObject()
With this function you can delete a ToolManager object. If the object is
linked to other objects, these objects will be notified to update their
state.

@item QuitToolManager()
This function tells the ToolManager handler to quit as soon as possible.
@end table

The complete library interface description is available in AutoDoc format
(@pxref{Docs, Documentation}).

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: HotKeys                                         ---
@comment ----------------------------------------------------------------
@node Hot Keys, History, Library, Top
@chapter How to define a Hot Key
@cindex Introduction to Hot Keys
@cindex Hot Keys
@cindex Reference: Hot Keys

This chapter describes how to define a Hot Key as an Input Description String,
which is then parsed by Commodities. Each time a Hot Key is activated
Commodities generates an event which is used by ToolManager to activate Exec
objects or to toggle Dock objects. A description string has the following
syntax:

@example
[<class>] @{[-][<qualifier>]@} [-][upstroke] [<key code>]
@end example

All keywords are case insensitive.

@code{class} describes the InputEvent class. This parameter is optional and
if it is missing the default @code{rawkey} is used. @xref{InputEvent classes}.

Qualifiers are ``signals'' that must be set or cleared by the time the Hot Key
is activated; otherwise no event will be generated. For each qualifier that
must be set you supply its keyword. All other qualifiers are expected to be
cleared by default. If you want to ignore a qualifier, just set a @code{-}
before its keyword. @xref{Qualifiers}.

Normally a Hot Key event is generated when a key is pressed. If the event
should be generated when the key is released, supply the keyword
@code{upstroke}. When both press and release of the key should generate an
event, use @code{-upstroke}.

The key code is depending on the InputEvent class. @xref{Key codes}.

@menu
* InputEvent classes::
* Qualifiers::
* Key codes::
* Hot Key examples::
@end menu

Note: Choose your hot keys @emph{carefully}, because Commodities has a high
priority in the InputEvent handler chain (i.e.@: will override existing
definitions).

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Hot Keys/Input Event classes                    ---
@comment ----------------------------------------------------------------
@node InputEvent classes, Qualifiers, , Hot Keys
@section InputEvent classes
@cindex Diskinserted
@cindex Diskremoved
@cindex InputEvent classes
@cindex Rawkey
@cindex Rawmouse

Commodities supports most of the InputEvent classes that are generated by the
input.device. This section describes those classes that are most useful for
ToolManager Hot Keys.

@table @code
@item rawkey
This is the default class and covers all keyboard events. For example
@code{rawkey a} or @code{a} creates an event every time when the key ``a'' is
pressed. You must specify a key code for this class.
@xref{rawkey key codes,rawkey}.

@item rawmouse
This class describes all mouse button events. You must specify a key code for
this class. @xref{rawmouse key codes,rawmouse}.

@item diskinserted
Events of this class are generated when a disk is inserted in a drive. This
class has no key codes.

@item diskremoved
Events of this class are generated when a disk is removed from a drive. This
class has no key codes.
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Hot Keys/Qualifiers                             ---
@comment ----------------------------------------------------------------
@node Qualifiers, Key codes, InputEvent classes, Hot Keys
@section Qualifiers
@cindex Qualifiers
@cindex List: Qualifiers

Some keyword synonyms were added to Commodities V38. These are marked with an
@code{*}.

@table @asis
@item @code{lshift}, @code{left_shift} *
Left shift key.

@item @code{rshift}, @code{right_shift} *
Right shift key.

@item @code{shift}
Either shift key.

@item @code{capslock}, @code{caps_lock} *
Caps lock key.

@item @code{caps}
Either shift key or caps lock key.

@item @code{control}, @code{ctrl} *
Control key.

@item @code{lalt}, @code{left_alt} *
Left alt key.

@item @code{ralt}, @code{right_alt} *
Right alt key.

@item @code{alt}
Either alt key.

@item @code{lcommand}, @code{lamiga} *, @code{left_amiga} *, @code{left_command} *
Left Amiga/Command key.

@item @code{rcommand}, @code{ramiga} *, @code{right_amiga} *, @code{right_command} *
Right Amiga/Command key.

@item @code{numericpad}, @code{numpad} *, @code{num_pad} *, @code{numeric_pad} *
This keyword @emph{must} be used for any key on the numeric pad.

@item @code{leftbutton}, @code{lbutton} *, @code{left_button} *
Left mouse button. See note below.

@item @code{midbutton}, @code{mbutton} *, @code{middlebutton} *, @code{middle_button} *
Middle mouse button. See note below.

@item @code{rbutton}, @code{rightbutton} *, @code{right_button} *
Right mouse button. See note below.

@item @code{repeat}
This qualifier is set when the keyboard repeat is active. Only useful for
InputEvent class @code{rawkey}.
@end table

Note: Commodities V37 has a bug which prevents the use of @code{leftbutton},
@code{midbutton} and @code{rbutton} as qualifiers. This bug is fixed in V38.

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Section: Hot Keys/Key codes                              ---
@comment ----------------------------------------------------------------
@node Key codes, Hot Key examples, Qualifiers, Hot Keys
@section Key codes

Each InputEvent class has its own key codes:

@menu
* rawkey:rawkey key codes.
* rawmouse:rawmouse key codes.
@end menu

@comment ----------------------------------------------------------------






@comment ----------------------------------------------------------------
@comment --- Subsection: Hot Keys/Key codes/rawkey key codes          ---
@comment ----------------------------------------------------------------
@node rawkey key codes, rawmouse key codes, , Key codes
@subsection Key codes for InputEvent class @code{rawkey}
@cindex Key codes for @code{rawkey}
@cindex List: @code{rawkey} key codes

Some keywords and synonyms were added to Commodities V38. These are marked
with an @code{*}.

@table @asis
@item @code{a}-@code{z}, @code{0}-@code{9}, @dots{}
ASCII characters.

@item @code{f1}, @code{f2}, @dots{}, @code{f10}, @code{f11} *, @code{f12} *
Function keys.

@item  @code{up}, @code{cursor_up} *, @code{down}, @code{cursor_down} *
@itemx @code{left}, @code{cursor_left} *, @code{right}, @code{cursor_right} *
Cursor keys.

@item  @code{esc}, @code{escape} *, @code{backspace}, @code{del}, @code{help}
@itemx @code{tab}, @code{comma}, @code{return}, @code{space}, @code{spacebar} *
Special keys.

@item  @code{enter}, @code{insert} *, @code{delete} *
@itemx @code{page_up} *, @code{page_down} *, @code{home} *, @code{end} *
Numeric Pad keys. Each of these key codes @emph{must} be used with the
@code{numericpad} qualifier keyword!
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Subsection: Hot Keys/Key codes/rawmouse key codes        ---
@comment ----------------------------------------------------------------
@node rawmouse key codes, , rawkey key codes, Key codes
@subsection Key codes for InputEvent class @code{rawmouse}
@cindex Key codes for @code{rawmouse}
@cindex List: @code{rawmouse} key codes

These keywords were added to Commodities V38. They are not available in V37.

@table @code
@item mouse_leftpress
Press left mouse button.

@item mouse_middlepress
Press middle mouse button.

@item mouse_rightpress
Press right mouse button.
@end table

Note: To use one of these key codes, you must also set the corresponding
qualifier keyword, e.g.

@example
rawmouse leftbutton mouse_leftpress
@end example

@comment ----------------------------------------------------------------






@comment ----------------------------------------------------------------
@comment --- Section: Hot Keys/Hot Key examples                       ---
@comment ----------------------------------------------------------------
@node Hot Key examples, , Key codes, Hot Keys
@section Examples for Hot Keys
@cindex Examples for Hot Keys

@table @code
@item ralt t
Hold right Alt key and press ``t''

@item ralt lalt t
Hold left @emph{and} right Alt key and press ``t''

@item alt t
Hold either Alt key and press ``t''

@item rcommand f2
Hold right Amiga key and press the second function key

@item numericpad enter
Press the Enter key on the numeric pad

@item rawmouse midbutton leftbutton mouse_leftpress
Hold middle mouse button and press the the left mouse button

@item diskinserted
Insert a disk in any drive.
@end table

@comment ----------------------------------------------------------------
@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: History                                         ---
@comment ----------------------------------------------------------------
@node History, Credits, Hot Keys, Top
@appendix The History of ToolManager
@cindex History
@cindex Programm versions
@cindex Versions

@comment ----------------------------------------------------------------
@comment Note to translators:
@comment This chapter should normally not be translated
@comment ----------------------------------------------------------------

@table @asis
@item 2.0, Release date 26.09.1992


@itemize @minus

@item Complete new concept (object oriented)

@item (Almost) Complete rewrite

@item ToolManager is now split up into two parts

@item Main handler is now embedded into a shared library

@item Configuration is now handled by a Preferences program

@item Configuration file format has changed again :-) It is an IFF File now
and resides in ENV:

@item Multiple Docks and multi-column Docks

@item Docks with new window design

@item Dock automatically detects largest image size

@item Sound support

@item Direct ARexx support for Exec objects

@item ToolManager can be used without the Workbench. If the Workbench isn't
running, it won't use any App* features.

@item Locale support

@item Path from Workbench will be used for CLI tools

@item Seperate Handler Task for starting WB processes

@end itemize


@item 1.5, Release date 10.10.1991, Fish Disk #551


@itemize @minus

@item Status Window: New/Open/Append/Save As menu items for config file

@item Edit Window: File requesters for file string gadgets

@item Added a Dock Window (a la NeXT)

@item Added a DeleteTool

@item A list of all active HotKeys can be shown

@item Tools can be moved around in the list

@item Icon positioning in the edit window added

@item Name of the program icon can be set

@item CLI tools can have an output file and a path list

@item Uses UserShell for CLI tools

@item Maximum command line length for CLI tools is now 4096 Bytes

@item AppIcons without a name are supported now

@item Workbench screen will be moved to front if you pop up the Status window

@item Workbench screen can be moved to front before starting a tool via HotKey

@item TM will wait up to 20 seconds for the workbench.library

@item Added a DELAY switch which causes TM to wait <num> seconds before adding
any App* stuff

@item renamed some tooltypes/parameters

@item some visual cues added

@item some internal changes

@end itemize


@item 1.4, Release date 09.07.1991, Fish Disk #527


@itemize @minus

@item Keyboard short cuts for tools

@item AppIcons for tools

@item Menu item can be switched off

@item Configuration file format completely changed (hopefully the last time)

@item CLI commandline parsing is now done by ReadArgs()

@item Status & edit window updated to new features

@item Safety check before program shutdown added

@item Menu item ``Open TM Window'' only appears if the program icon is
disabled

@item WB startup method changed. Now supports project icons

@item several internal changes

@end itemize


@item 1.3, Release date 13.03.1991, Fish Disk #476


@itemize @minus

@item Now supports different configuration files

@item Format of the configuration file slightly changed

@item Tool definitions can be changed at runtime

@item Now supports CLI & Workbench startup method

@item Selected icons are passed as parameters to the tools

@item Now uses the startup icon as program icon if started from Workbench

@item The position of the icon can now be supplied in the configuration file

@item The program icon can now be disabled

@item New menu entry ``Show TM Window''

@item Every new started ToolManager passes its startup parameters to the
already running ToolManager process

@end itemize


@item 1.2, Release date 12.01.1991, Fish Disk #442


@itemize @minus

@item Status window changed to a no-GZZ & simple refresh type
(this should save some bytes)

@item Status window remembers its last position

@item New status window gadget ``Save Configuration'': saves the actual tool
list in the configuration file

@item Small bugs removed in the ListView gadget handling

@item Name of the icon hard-wired to ``ToolManager''

@end itemize


@item 1.1, Release date 01.01.1991


@itemize @minus

@item Icons can be dropped on the status window

@item Status window contains a list of all tool names

@item Tools can be removed from the list

@end itemize


@item 1.0, Release date 04.11.1990


@itemize @minus

@item Initial release

@end itemize
@end table

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Chapter: Credits                                         ---
@comment ----------------------------------------------------------------
@node Credits, Index, History, Top
@appendix The author would like to thank@dots{}
@cindex Credits
@cindex Thanks

ToolManager has gone through many major evolutionary phases since its first
implementation in mid-1990. This development would have been impossible if I
hadn't received the enormous feedback from various ToolManager users. Many
ideas & features resulted from this source@dots{}

Therefore I would like to thank:

@table @asis
@item For Alpha/Beta testing, ideas & bug reports:

Amiga section of our local computer club (Computerclub an der RWTH Aachen),
Olaf 'Olsen' Barthel, Georg Hessmann (Gucky), Markus Illenseer (ill), Klaus
Melchior, Rickard Olsson (Richie), Matthias Scheler (Tron), Ralph Schmidt
(laire), Roger Westerlund (Budda), Juergen Weinelt, Brian Wright (SteveVai),
Petra Zeidler (stargazer) and many others@dots{}

@item Matthew Dillon

Without your @strong{excellent} C development system DICE and various other
tools, ToolManager wouldn't exist!

@item For their excellent graphics work:

Andreas Harrenberg, Georg Hessmann, Michael ``Mick'' Hohmann, Markus
Illenseer, Oliver Koenen, Klaus Melchior, Rickard Olsson, Jan Peter, Matthias
Scheler, Brian Wright

@item For the Locale translations:

Tomi Blinnikka (Finnish), Dr.@: Peter Kittel (German), Klaus Melchior
(Eifel Platt), Rickard Olsson (Swedish), Marc Schaefer (French & Italiano)

@item All gals & guys at West Chester:

For developing the Amiga and its superb operating system.

@item All users who sent me money:

I didn't ask for it in the 1.X releases, but it's nice to see when someone
appreciates my work.

@item All users who sent me a note:

I really enjoyed reading your letters!

@item and all I forgot to mention@dots{}
@end table

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Unnumbered chapter: Index                                ---
@comment ----------------------------------------------------------------
@node Index, , Credits, Top
@unnumbered Index


@printindex cp

@comment ----------------------------------------------------------------





@comment ----------------------------------------------------------------
@comment --- Table of Contents (appears only in printed manual)       ---
@comment ----------------------------------------------------------------
@contents
@comment ----------------------------------------------------------------

@comment This is REALLY the end :-)

@bye
